// 1. 封装一个函数实现字符串翻转。
function turn(str) {
  let arr = str.split("");
  // console.log(arr);
  let j = 0;
  for (let i = str.length - 1; i >= 0; i--) {
    arr[i] = str[j];
    j++;
  }
  return arr.join("");
}
console.log(turn("123456"));
// 2. 字符串 digite = "0123456789", 把前 5 个字符分割出来， 返回个单字符的数组, 注意， 返回数组里面的数字是字符串类型, string.split()
let digite = "0123456789";
function fn2(str) {
  return digite.slice(0, 5).split("");
}
console.log(fn2(digite));

// 3.已知有字符串 foo=”get-element-by-id”,写一个 function 将其转化成驼峰表示法”getElementById”.

let str3 = "get-element-by-id";
function fn3(str) {
  let arr = str.split("-");
  console.log(
    arr
      .map(function (item, index) {
        // console.log(item);
        if (index == 0) return item;
        else {
          item = item.charAt(0).toUpperCase() + item.slice(1);
          return item;
        }
      })
      .join("")
  );
}
fn3(str3);
// 4.定义一个函数,将"今天是什么鬼天气，这么热，明天要去游泳！"里面的有"天"的下标输出(用 indexof())

let str4 = "今天是什么鬼天气，这么热，明天要去游泳！";
function fn4(str) {
  let index = str.indexOf("天");
  let arr = [];
  while (index !== -1) {
    arr.push(index);
    index = str.indexOf("天", index + 1);
  }
  return arr;
}
console.log(fn4(str4));

// 5.定义一个函数,将"今天是什么鬼天气，这么热，明天要去游泳！"里面的有"天"替换成"日"(用 replace())

let str5 = "今天是什么鬼天气，这么热，明天要去游泳！";
function fn5(str) {
  let index = str.indexOf("天");
  let arr = [];
  while (index !== -1) {
    arr.push(index);
    index = str.indexOf("天", index + 1);
  }
  let newArray = str.split("");
  for (let i = 0; i < arr.length; i++) {
    newArray[arr[i]] = "日";
  }
  return newArray.join("");
}
console.log(fn5(str5));

// 6.解析 URL Params 为对象，例如(https://www.baidu.com/s?ie=UTF-8&wd=letcode)

// 返回结构如下:
// {
//     ie:"UTF-8",
//     wd:"letcode"
// }

let url = "https://www.baidu.com/s?ie=UTF-8&wd=letcode";
let ie = url.slice(url.indexOf("ie=") + 3, url.indexOf("&"));
let wd = url.slice(url.indexOf("wd=") + 3);
let obj = {};
obj.ie = ie;
obj.wd = wd;
console.log(obj);

// 7.查找字符串中(abbcccddddd)出现最多的字符和个数
let str7 = "abbcccddddd";
function fn7(str) {
  let obj = {};
  let maxChar = "";
  let maxNum = 0;
  for (let i = 0; i < str.length; i++) {
    let char = str[i];
    let newArr7 = str.split("");
    num = newArr7.filter((item) => item === char).length;
    if (num > maxNum) {
      maxChar = char;
      maxNum = num;
    }
  }
  obj.maxChar = maxChar;
  obj.maxNum = maxNum;
  return obj;
}
console.log(fn7(str7));

// 8. "hi javascript hi hello world!" 改成 "Hi Javascript! Hi Hello World!"

let str8 = "hi javascript hi hello world!";
function fn8(str) {
  let arr = str.split(" ");
  console.log(
    arr
      .map(function (item) {
        // console.log(item);
        item = item.charAt(0).toUpperCase() + item.slice(1);
        return item;
      })
      .join(" ")
  );
}
fn8(str8);

// 9. 把 "hi javascript!" 改成 "Hi Javascript!"
let str9 = "hi javascript";
function fn9(str) {
  let arr = str.split(" ");
  console.log(
    arr
      .map(function (item) {
        // console.log(item);
        item = item.charAt(0).toUpperCase() + item.slice(1);
        return item;
      })
      .join(" ")
  );
}
fn9(str9);

// 10. 定义一个函数, 函数功能是检测字符串是否包含指定字符, (指定字符可以支持多个, 只要包含其中一个指定字符即返回结果)
str10 = "123456";
arr10 = ["1", "9"];
function fn10(str, arr) {
  // console.log(str10.split(""));
  for (let i = 0; i < arr.length; i++) {
    if (str.split("").some((item) => arr[i] === item)) return true;
    else return false;
  }
}
console.log(fn10(str10, arr10));